Not applicable.
Not applicable.
The present invention relates to electronic search engines and more specifically to a system wherein, when a data reference which references a record is provided by a system user, a processor performs a tiered search of linked databases for the sought record and, depending upon characteristics of the data reference (e.g., content characteristics and other non-content characteristics), limits the search to a specific database/database sub-set or extends the search to additional databases/directories.
Herein, unless indicated otherwise, the term xe2x80x9crecordxe2x80x9d is used to refer generally to electronically stored and accessible data including, among other things, word processor documents, web browser pages, pictures, tables, charts, video clips, audio clips, multi-media presentations, etc. Also, hereinafter, the term xe2x80x9cdatabasexe2x80x9d will be used to refer to a collection of data stored on an electronic medium while the term xe2x80x9cdatabasexe2x80x9d will be used to refer to a data construct which resides on a database and which catalogues at least a sub-set of database data in an ordered fashion to expedite database searching.
The data processing industry generally has developed several tools that enable a system user to locate specific records stored on databases linked to workstations. To this end, early computing systems typically included a workstation linked to a single database with separate records stored at specific memory addresses. To access a record, a system user had to provide the precise name of the record to access or the record""s address and then a workstation used the provided information to locate the sought record and facilitate access thereto.
Eventually the industry developed networking systems referred to generally as local area networks (LANs) and wide area networks (WANs) which linked several workstations to a plurality of different databases so that a system user could have access to data in many different databases from a single computer. To this end, in addition to providing the exact address on a database or name of a record to locate, a system user also had to indicate the database on which a record was stored so that the processor could locate the record.
With the advent of the Internet, in addition to their proximately linked memories and company wide LAN and WAN databases, many workstations are now linked to virtually tens of thousands of databases via massive electronic networks. In fact database storage is quickly becoming xe2x80x9ccomoditizedxe2x80x9d as storage industry leaders construct and service server and database warehouses sometimes referred to as storage area networks (SANs). Thus database storage and support is quickly becoming an outsourced application.
While many advantages are associated with the massive Internet network, the sheer amount of data accessible via the Internet poses many problems. This is particularly true as the boundaries between a xe2x80x9cproximatexe2x80x9d (i.e. directly connected) workstation memory and Internet databases (e.g., SANs and other portal support databases) become blurred.
Various tools have been developed to help Internet users locate and access records in virtually all network-linked databases. As with vintage systems, to access a record on a proximate database, typically a system user has to specify a database or specify a database on which the record sought is stored. Thereafter, the record name has to be provided and a database managing processor searches for the named record on the database or in the database specified. Where the record is not stored on the specified database, the processor indicates so and the user must select another database or database to search.
In the case of the Internet often a system user does not actually know the exact address or name of the record sought. Instead, the user only knows the general nature of the record sought. To facilitate the task of locating a record and rendering the record accessible, the Internet industry has developed search engine technology whereby a system user can provide a general description of a record sought in a query box. A processor then uses the general description to identify a specific database that likely includes the record sought. Next the processor searches the identified database rendering a list including many different records, each of which may in fact be the record sought. Thereafter the system user can select a record from the list for viewing.
Another tool that has been developed to access records and link related records together is generally referred to as hyper-linking. In hyper-linking schemes text and pictorial references in one record to other existing records may be distinguished and linked to addresses corresponding to the referenced records. By selecting a phrase or image, a user instructs the processor to access the record at the related address and provides the record for review.
Various tools have been developed to enable insertion of hyper-linking references in records for linking to other records. For example, e-mail software and word processors enable a user to enter an Internet address into record text. A processor recognizes the address as a hyperlink address, highlights (e.g., presents the address in a distinct color) the address and facilitates linking to the record stored at the address through selection of the highlighted hyper-link phrase. While this tool is useful it requires the system user to input the hyperlink address without error, a daunting task in many cases, especially as Internet addresses become longer and longer. In addition, inserting an address into record text tends to break up a readers train of thought.
Other tools have been developed which allow a user to earmark text phrases within a record for linking to web browser pages and then to manually provide a linking address for each earmarked phrase. These tools render more readable records but still require a user to enter complete Internet addresses which is a tedious task.
In addition to the systems described above the industry has also developed tools that enable a user to publish records as web documents that can be linked to other documents via addresses. Again the addresses have to be specified by the system user during publishing and each time the record is to be linked the system user has to again specify the address.
Efforts have been made to automate the web publishing process. One particularly useful effort is described in pending U.S. patent application Ser. No. 09/247,349 (hereinafter xe2x80x9cthe ""349 applicationxe2x80x9d) which was filed by the present inventor on Feb. 10, 1999, is entitled xe2x80x9cMethod and System for Automated Data Storage and Retrievalxe2x80x9d and is incorporated herein by reference. The ""349 application describes a system wherein a processor recognizes keywords, keyword phrases or data references (DRs) in a first record which reference other records stored on one or more databases and then generates links to the referenced records so that a person examining the first record can easily access any of the referenced records. Preferably access to the referenced records is facilitated by visually displaying the keyword phrase or DR in a highlighted format (e.g., similar to a hypertext linking phrase) which is selectable by a system user via a mouse controlled cursor or the like. Upon selection of the phrase or DR, the associated record is provided.
U.S. Pat. No. 5,895,461 which issued on Apr. 20, 1999, is entitled xe2x80x9cMethod and System for Automated Data Storage and Retrieval with Uniform Addressing Schemexe2x80x9d, is a parent patent to the ""349 application and which is also incorporated herein by reference teaches a system whereby a system user can indicate a keyword phrase (e.g., via entry of a special character earmarking the phrase) within a first record which is meant to reference another record. When the keyword phrase is identified, a processor uses the phrase to determine which record the phrase should be linked to and then renders the referenced record accessible within the first record.
Again, in one preferred embodiment, the referenced record is rendered accessible by visually highlighting the keyword phrase in the first record in a format that is selectable to access the referenced record. This patent also teaches a system whereby a user can enter a phrase into a special search request field and, thereafter, the processor will locate a specific record stored on a database linked thereto that is referenced by the request. This patent contemplates that any database, including databases linked to a processor via the Internet, may be searched for a record referenced in another record.
While the above described searching and linking systems have many advantages, they still suffer from several important shortcomings. First, in many cases a system user does not know exactly on which of several different databases a record is stored. For example, with respect to a LAN or WAN, often there are many different databases which a specific system user may use to store a record. Subsequent to storing a record the user may not remember which of several different databases to search to locate the record. In this case the search process entails searching each database separately, often a time consuming process.
Second, in many cases the tools provided to search one database may be completely different than the tools provided to search another database. For example, to search a memory that is directly linked to a computer a document manager may be employed while to search an Internet database a search engine may be employed. Thus, a complete search in this case would require a system user to use many different tools in order to locate a specific record.
Third, vintage database systems typically either require a system user to specify a database to be searched (e.g., this is true in the case of a LAN or a WAN) or include a managing processor which identifies a single database to be searched when a record query is made as in the case of the Internet. In many cases such simple searching routines fail to search all of the possible records which may be referenced by a query. For example, in the case of a LAN that searches only one database at a time, records stored under other databases would not be contemplated. Similarly and as another example, in the case of the Internet, assuming a search request for a record wherein a primary term in the query is xe2x80x9cIllinoisxe2x80x9d, an exemplary search engine typically includes a managing processor which identifies a server and related databases that correspond to Illinois and the search is limited to the identified server and linked databases.
Fourth, the systems described above fail to contemplate that, in a universe of databases, efficient database searching should follow a specific order wherein searching begins in the most likely location in which a specific sought record will be located followed by less likely locations.
Fifth, while systems exist for identifying and accessing records which correspond to randomly selected references in a first record, there is no system as of yet which facilitates inserting quick links between randomly selected references in a first record and second records associated with the selected references.
Sixth, often novice database users fail to recognize that a record may be stored on more than one database. As a result, after a single database has been searched to locate a record, often a novice user will assume the record has been lost or is inaccessible for some other reason. In this case the user would likely attempt to either recreate the lost record or access the record in some other form (e.g., hard copy stored in a traditional filing cabinet) despite the fact that, by simply specifying another database for searching, the record may be easily located.
Thus, it would be advantageous to have a system and method that overcomes the limitations described above. Specifically, it would be advantageous to have a system that automatically facilitates efficient database searching, that limits or extends database searches as a function of characteristics (e.g., reference content, reference context, the processor used to indicate the reference, etc.) of a reference to the record sought and that enables easy linking between a located record and a reference in another record.
In its simplest form, the inventive method includes receiving a record query or data reference (DR) from a system user via some network interfacing device, examining the DR to identify DR content or non-content characteristics or both content and non-content characteristics associated with the DR, based on the identified information selecting a sub-set of databases/directories to be searched for a record referenced by the DR, ordering the databases/directories as a function of likelihood that a referenced record will be located therein and then performing a search.
Thus, it has been recognized that DRs can be characterized by both content and non-content characteristics which can be used to select database/directory sub-sets which are relatively most likely to include records referenced by the DRs. This simple realization enables an extremely simple front end interface as a system user no longer has to worry about which database or directory includes a sought record. Like an Internet portal, a processor determines which databases to search for a sought record. However, unlike an Internet browser that only searches a single tier of databases (e.g., only searches Internet linked databases), the present invention searches multiple database tiers when appropriate. For example, given a network system including a plurality of workstations linked to a local LAN, local servers, local databases, a WAN, remote LANs (including remote LAN servers and databases) and Internet servers and databases, when a DR is provided, a processor may elect to search any of the linked databases in any order. For instance, given the above configured system, the processor search order may proceed according to the following order: a first workstation hard drive, a first local LAN database, a first Internet linked database, a second workstation hard drive, a third workstation hard drive, a WAN linked database, etc., the order selected so as to render extremely efficient and accurate search results.
After searching a first database/directory set, if a DR referenced record is identified, in one embodiment the processor renders the record accessible. If no DR referenced records are identified the processor performs of several different preferred sub-functions. Which sub-function is performed being a matter of designer choice although some sub-functions are preferred for specific applications as described hereinafter. For instance, in one embodiment, the sub-function is to indicate that no records referenced by the DR were found.
In another embodiment the sub-function is to indicate that no records were found but to facilitate the option to search a second database/directory sub-set. The second sub-set may be identified by the processor prior to providing the additional searching option or after the option is selected.
The sub-sets to be searched may be identified in any manner. For example, in a preferred embodiment the sub-set and the order of searching may have a one-to-one relationship to the combination of content and non-content characteristics associated with a DR. Similarly, the sub-function may also have a one-to-one relationship to the combination of content and non-content characteristic associated with a DR. In this case, after DR content and non-content characteristics are identified a simple look-up table can be used to identify the sub-set and order (i.e., sub-set/order) of databases/directories to be searched and, if a DR referenced record is not located, then the sub-function can be performed.
In another embodiment, depending upon the nature of a DR a processor may be programmed to search for more than one (e.g., N, where N is an integer greater than one) record. For example, on one hand, were a DR is extremely detailed (e.g., My letter to Tom Jones of Dec. 1, 1999), the processor may only search for a single record as the detailed DR likely includes sufficient information to differentiate one record from all other records. On the other hand, where a DR is relatively general (e.g., xe2x80x9cmy letterxe2x80x9d), the processor may be programmed to recognize the generality and search for a plurality (e.g., N) of records which fit the description, leaving a final discriminating selection to the querying system user.
In one embodiment the sub-function is dependent upon the results of searching a database/directory sub-set. For example, where N records are sought and no DR referenced records are located, the processor may be programmed to search a second database/directory sub-set while, if at least one DR referenced record is located, the processor may be programmed to halt the search and render the located records accessible. This feature is handy where there is a relatively large drop off between first and second database/directory sub-sets in likelihood that a DR referenced record will be included in the sub-sets. For instance, assume a physician is searching for a report generated at a specific medical facility and related to a specific patient. Also assume that, on the system being searched, virtually all patient reports stored on a specific local LAN database and only very few reports are saved in other WAN linked databases.
Moreover, assume that the physician is only capable of providing a general DR so that the processor will search for N (i.e., more than one) records. Clearly in this case there is a much greater likelihood that a report generated at the specific medical facility will be located on the local LAN database than on other network linked databases. Under these circumstances even if a first record is located on the local LAN database and four additional records are located on WAN linked databases which reference the patient, there is a much greater likelihood that the locally stored record is the record sought and hence the search should be halted after the local LAN database is searched if at least one DR referenced record is identified.
In one other embodiment, when a list of DR referenced records is provided for a system user to choose from, the processor may be equipped to generate a link for future purposes between the DR and one of the list records selected by a system user. For example, assume a relatively general DR is provided by a system user in a DR box or field via a workstation display and that, because the DR is relatively general, the processor returns a list of 10 (e.g., N=10) DR referenced records. In this case, when the list is displayed for user selection and the user selects one of the 10 records, the processor may be programmed to remember the association between the DR and the selected record so that the next time the same DR is provided to the processor, the processor will recognize the DR and automatically render the previously located record accessible. In the alternative, when one of the ten records is selected the processor may render the selected record accessible and provide a link forming icon which, when selected, forms a link between the record selected and the DR for future use. This feature allows the user to browse the selected record prior to linking.
Each of the sub-sets, sub-functions and other searching and linking features described above are a matter of system administrator choice and should be selected using logic calculated to result in efficient searching. For example, as described above, where a DR is relatively detailed so that DR content and non-content characteristics likely will distinguish one record from all other records, the number of records sought should be small and preferably one and where a DR is relatively general the number (N) of records sought should be relatively large. In addition, the administrator will preferably apply knowledge about a network system to earmark database sub-sets for searching which will efficiently yield high quality search results. For instance, knowing that essentially all of a specific physician""s letters are stored either on the physician""s personal workstation hard drive or on a specific local LAN database, hard drive and the specific local LAN database as a first database sub-set to be searched when a DR references one of the physician""s letters. Similar simple rules based on an administrator""s familiarity with a network are also contemplated.
In another embodiment a system may include more than one record searching processor and, depending upon characteristic qualifiers there may be better processors to manage the searching function than other processors. For example, a first search processor may be located in a medical facility and may be programmed to identify CQs useful in categorizing records in a medical facility while a second search processor is located in the City of Minneapolis and is programmed to identify CQs useful in categorizing records related to the City of Minneapolis. In this case it is contemplated that, when a DR related to Minneapolis is provided to the inventive system, the first processor would recognize that some other processor would be more suitable to manage record searching. The first processor would send the DR and, perhaps additional information, to a search processor server programmed to identify the most suitable second search processor for performing the Minneapolis record search. Which information is sent to the search processor server and which of the first and second servers performs steps such as identifying CQs, identifying database sub-sets, etc. is irrelevant. The important point here is that more than one search processor can cooperate together to achieve the ultimate goal of performing efficient database searching.
These and other aspects of the invention will become apparent from the following description. In the description, reference is made to the accompanying drawings which form a part hereof, and in which there is shown a preferred embodiment of the invention. Such embodiment does not necessarily represent the full scope of the invention and reference is made therefor, to the claims herein for interpreting the scope of the invention.